package com.fdb.efp.nls.service.impl;


import com.fdb.basic.framework.core.base.FrameworkService;
import com.fdb.efp.nls.common.ConsoleConstant;
import com.fdb.efp.flow.common.vo.PageApproveVO;
import com.fdb.efp.nls.service.facade.LitigationFlowApprService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *需求编号：【】（业务提的需求编号）
 *问题编号：【】（若不是因为修复问题而新增该类，则留空）
 *开发人员：【】
 *创建日期：【2019/9/19 21:15】
 *功能描述：
 */
@Service("litigationFlowApprService")
public class LitigationFlowApprServiceImpl implements LitigationFlowApprService, FrameworkService {

    private static Logger logger = LoggerFactory.getLogger(LitigationFlowApprServiceImpl.class);

//    @Autowired
//    private ColltTaskFlowAppDao colltTaskFlowAppDao;
//
//    @Autowired
//    private ColltTaskInfoService colltTaskInfoService;
//
//    @Autowired
//    @Qualifier("bizEventInfoService")
//    private BizEventInfoService bizEventInfoService;

    @Autowired
    private ColltTaskFlowApprDealService colltTaskFlowApprDealService;

    @Override
    public void pass(String bizSerno, PageApproveVO pageApproveVo) {
        logger.info("诉讼催收审批通过流水号:" + bizSerno);

        colltTaskFlowApprDealService.colltTaskFlowApprPass(bizSerno, pageApproveVo, ConsoleConstant.APRV_STATUS_03);

        /**try {
            if (!StringUtil.isNullorBank(bizSerno)) {
                ColltTaskFlowApp colltTaskFlowApp = colltTaskFlowAppDao.queryByFlowApplyNo(bizSerno);
                if (Objects.nonNull(colltTaskFlowApp)) {
                    colltTaskFlowApp.setLastUpdateTime(TimeUtil.getCurrentDateTime());
                    colltTaskFlowApp.setLastUpdateUser(pageApproveVo.getAprvUserId());
                    colltTaskFlowApp.setAprvUserCode(pageApproveVo.getAprvUserId());
                    colltTaskFlowApp.setAprvUserName(pageApproveVo.getAprvUserName());
                    colltTaskFlowApp.setAprvComment(pageApproveVo.getAprvComment());
                    colltTaskFlowApp.setAprvTime(TimeUtil.getCurrentDateTime());
                    //审批意见“通过”
                    colltTaskFlowApp.setApproveStatus(ConsoleConstant.APRV_STATUS_03);
                    int num1 = colltTaskFlowAppDao.updateByPk(colltTaskFlowApp);
                    if (num1 < 0) {
                        logger.error("更新审批意见信息失败。");
                    }
                    //修改任务信息
                    ColltTaskInfoVO colltTaskInfo = new ColltTaskInfoVO();
                    colltTaskInfo.setColltTaskNo(colltTaskFlowApp.getColltTaskNo());
                    colltTaskInfo.setColltWay(colltTaskFlowApp.getFlowColltTaskType());
                    colltTaskInfo.setIdentWay(RiskColltConstant.IDENT_WAY_02);
                    colltTaskInfo.setTaskSts(RiskColltConstant.COLLT_OUTS_TASK_STS_01);
                    colltTaskInfo.setLastUpdateUser(pageApproveVo.getAprvUserId());
                    //案件流转到委外催收时，需赋值经手类型，统一为"一手"
                    if(RiskColltConstant.STD_COLLT_WAY_03.equals(colltTaskFlowApp.getFlowColltTaskType())){
                        colltTaskInfo.setOutsHdleType(RiskColltConstant.STD_HANDLE_TYPE_01);
                    }
                    int num = colltTaskInfoService.updateFlowInfo(colltTaskInfo);
                    if (num < 0) {
                        logger.error("更新催收任务信息失败。");
                    }
                } else {
                    logger.info("根据诉讼催收审批通过流水号:" + bizSerno + "，查询到的结果为空");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("根据诉讼催收审批通过流水号:" + bizSerno + "，处理失败，错误信息：" + e.getMessage());
        }*/
    }

    @Override
    public void refuse(String bizSerno, PageApproveVO pageApproveVo) {
        logger.info("诉讼催收审批拒绝流水号:" + bizSerno);

        colltTaskFlowApprDealService.colltTaskFlowApprRefuse(bizSerno, pageApproveVo, ConsoleConstant.APRV_STATUS_04);

        /**try {
            if (!StringUtil.isNullorBank(bizSerno)) {
                ColltTaskFlowApp colltTaskFlowApp = colltTaskFlowAppDao.queryByFlowApplyNo(bizSerno);
                if (Objects.nonNull(colltTaskFlowApp)) {
                    colltTaskFlowApp.setLastUpdateTime(TimeUtil.getCurrentDateTime());
                    colltTaskFlowApp.setLastUpdateUser(pageApproveVo.getAprvUserId());
                    colltTaskFlowApp.setAprvUserCode(pageApproveVo.getAprvUserId());
                    colltTaskFlowApp.setAprvUserName(pageApproveVo.getAprvUserName());
                    colltTaskFlowApp.setAprvComment(pageApproveVo.getAprvComment());
                    colltTaskFlowApp.setAprvTime(TimeUtil.getCurrentDateTime());
                    //审批意见“拒绝”
                    colltTaskFlowApp.setApproveStatus(ConsoleConstant.APRV_STATUS_04);
                    int num1 = colltTaskFlowAppDao.updateByPk(colltTaskFlowApp);
                    if (num1 < 0) {
                        logger.error("更新审批意见信息失败。");
                    }
                    //修改任务信息
                    ColltTaskInfoVO colltTaskInfo = new ColltTaskInfoVO();
                    colltTaskInfo.setColltTaskNo(colltTaskFlowApp.getColltTaskNo());
                    colltTaskInfo.setTaskSts(RiskColltConstant.COLLT_OUTS_TASK_STS_01);
                    int num = colltTaskInfoService.updateByPk(colltTaskInfo);
                    if (num < 0) {
                        logger.error("更新催收任务信息失败。");
                    }
                } else {
                    logger.info("根据诉讼催收审批拒绝流水号:" + bizSerno + "，查询到的结果为空");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("根据诉讼催收审批拒绝流水号:" + bizSerno + "，处理失败，错误信息：" + e.getMessage());
        }*/
    }

    @Override
    public void repulse(String bizSerno, PageApproveVO pageApproveVo) {
        // 目前业务人工流转只有通过和拒绝，无打回 @date 2020/01/14
        /**logger.info("诉讼催收审批打回流水号:" + bizSerno);
        try {
            if (bizEventInfoService.isFirstNode(bizSerno)) {
                if (!StringUtil.isNullorBank(bizSerno)) {
                    ColltTaskFlowApp colltTaskFlowApp = colltTaskFlowAppDao.queryByFlowApplyNo(bizSerno);
                    if (Objects.nonNull(colltTaskFlowApp)) {
                        colltTaskFlowApp.setLastUpdateTime(TimeUtil.getCurrentDateTime());
                        colltTaskFlowApp.setLastUpdateUser(pageApproveVo.getAprvUserId());
                        colltTaskFlowApp.setAprvUserCode(pageApproveVo.getAprvUserId());
                        colltTaskFlowApp.setAprvUserName(pageApproveVo.getAprvUserName());
                        colltTaskFlowApp.setAprvComment(pageApproveVo.getAprvComment());
                        colltTaskFlowApp.setAprvTime(TimeUtil.getCurrentDateTime());
                        //审批意见“打回”
                        colltTaskFlowApp.setApproveStatus(ConsoleConstant.APRV_STATUS_05);
                        colltTaskFlowAppDao.updateByPk(colltTaskFlowApp);
                    } else {
                        logger.info("根据诉讼催收审批打回流水号:" + bizSerno + "，查询到的结果为空");
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("根据诉讼催收审批打回流水号:" + bizSerno + "，处理失败，错误信息：" + e.getMessage());
        }*/
    }
}
